import { _decorator } from 'cc';
const { ccclass, property } = _decorator;

export interface IPreload {
    onPreLoadAssetsProgress(progress: number): void;

    onPreLoadAssetsComplete(): void;
    onPreLoadEndlessProgress(progress: number): void;
    onPreLoadEndlessComplete(): void;
}

class _PreLoadRes {
    private _listener: IPreload = null;
    public set Listener(listener: IPreload){
        this._listener = listener;
    }
    public get Listener(){
        return this._listener;
    }

    private readonly Pre_Res_List: string[] = [
        // UIConfig[UIID.UIRoom].prefab,
    ];

    public preLoadLevel(){
        this._listener.onPreLoadAssetsComplete();
        // GameData.loadAllLevelData((finished: number, total: number) => {
        //     if(this._listener){
        //         let progress = finished / total;
        //         if (progress == Number.MAX_VALUE || isNaN(progress)) {
        //             progress = 0;
        //         }
        //         this._listener.onPreLoadAssetsProgress(progress);
        //     }
        // }).then(()=>{
        //     if(this._listener){
        //         this._listener.onPreLoadAssetsComplete();
        //     }
        // });
        // ResMgr.instance.load(this.Pre_Res_List, Prefab, (finished: number, total: number) => {
        //     if(this._listener){
        //         let progress = finished / total;
        //         if (progress == Number.MAX_VALUE || isNaN(progress)) {
        //             progress = 0;
        //         }
        //         this._listener.onPreLoadAssetsProgress(progress);
        //     }
        // }, (err: Error | null, data: Prefab[]) => {
        //     if(this._listener){
        //         this._listener.onPreLoadAssetsComplete();
        //     }
        //     if (!err) {
        //         data.forEach(item => ResMgr.instance.PrefabList.set(item.name, item));;    
        //     }
        // });
    }
    // public preLoadEndless(){
    //     EndlessCtrl.loadLevelList((finished: number, total: number) => {
    //         if(this._listener){
    //             let progress = finished / total;
    //             if (progress == Number.MAX_VALUE || isNaN(progress)) {
    //                 progress = 0;
    //             }
    //             this._listener.onPreLoadEndlessProgress(progress);
    //         }
    //     }).then(()=>{
    //         if(this._listener){
    //             this._listener.onPreLoadEndlessComplete();
    //         }
    //     });
    // }
}

export const PreLoadRes = new _PreLoadRes();


